package com.wx.mall.operate.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.github.pagehelper.PageHelper;
import com.wx.mall.operate.dto.RebBrandTwoDto;
import com.wx.mall.operate.dto.VBrandsDto;
import com.wx.mall.operate.entity.RebBra;
import com.wx.mall.operate.entity.RebBrand;
import com.wx.mall.operate.entity.VBrands;
import com.wx.mall.operate.mapper.VBrandsMapper;
import com.wx.mall.operate.service.IRebBraService;
import com.wx.mall.operate.service.IRebBrandService;
import com.wx.mall.operate.service.IVBrandsService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * <p>
 * VIEW 服务实现类
 * </p>
 *
 * @author j
 * @since 2020-06-08
 */
@Service
public class VBrandsServiceImpl extends ServiceImpl<VBrandsMapper, VBrands> implements IVBrandsService {

    @Autowired
    IRebBrandService iRebBrandService;

    @Autowired
    IVBrandsService ivBrandsService;

    @Autowired
    IRebBraService iRebBraService;

    @Autowired
    RebBraServiceImpl rebBraService;

    @Override
    public int finds(Long ids) {
        QueryWrapper<VBrands> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("rebate_id",ids);
        List<VBrands> list = this.list(queryWrapper);
        int kfc=0;
        for (VBrands v:list
             ) {
            RebBrand rebBrand=new RebBrand();
            rebBrand.setId(v.getId());
            RebBrand byId = iRebBrandService.getById(rebBrand.getId());
            byId.setState(1);
            boolean b = iRebBrandService.updateById(byId);
            if (b==true){
                kfc=1;
            }else {
                kfc=0;
            }
        }
        return kfc;
    }

    @Override
    public List<VBrands> findBrandSelect(VBrandsDto dto) {
        PageHelper.startPage(dto.getPageNum(),dto.getPageSize());
        QueryWrapper<VBrands> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("rebate_id",dto.getIds());
        List<VBrands> list = this.list(queryWrapper);
        return list;
    }

    @Override
    public List<VBrands> findBrandScreen(RebBrandTwoDto dto) {
        PageHelper.startPage(dto.getPageNum(),dto.getPageSize());
        QueryWrapper<VBrands> queryWrapper=new QueryWrapper<>();
        if (dto.getSortId()!=null){
            queryWrapper.eq("sort_id",dto.getSortId());
        };
        List<VBrands> list = this.list(queryWrapper);
        return list;
    }

    @Override
    public int findVBraUpdate(Long ids, List<VBrands> vBrands) {
        QueryWrapper<VBrands> queryWrapper=new QueryWrapper<>();
        queryWrapper.eq("rebate_id",ids);
        List<VBrands> list = this.list(queryWrapper);
        int aa=1;
        if (list.size()==0){
            for (VBrands v:vBrands
                 ) {
                RebBra rebBra=new RebBra();
                rebBra.setBrandId(v.getId());
                rebBra.setRebateId(v.getRebateId());
                rebBra.setSortId(v.getSortId());
                boolean save = iRebBraService.save(rebBra);
                if (save==true){
                    RebBrand byId = iRebBrandService.getById(ids);
                    byId.setState(1);
                    boolean b = iRebBrandService.updateById(byId);
                    if (b==true){
                        aa=1;
                    }else {
                        aa=0;
                    }
                }else {
                    int i = rebBraService.deleteBra(ids);
                    if (i==1){
                        for (VBrands vm : vBrands
                             ) {
                            RebBra rebBram=new RebBra();
                            rebBram.setBrandId(vm.getId());
                            rebBram.setRebateId(vm.getRebateId());
                            rebBram.setSortId(vm.getSortId());
                            boolean s = iRebBraService.save(rebBra);
                            if (s==true){
                                VBrands byId = ivBrandsService.getById(ids);
                                byId.setState(1);
                                boolean b = ivBrandsService.updateById(byId);
                                if (b==true){
                                    aa=1;
                                }else {
                                    aa=0;
                                }
                            }
                        }
                    }
                }
            }
        }
        return aa;
    }
}
